package org.mspring.mlog.service;

import java.util.List;

import org.mspring.mlog.entity.Catalog;
import org.mspring.platform.persistence.hibernate.BaseDao;

/**
 * 
 * @author Gao Youbo
 * @since 2013-06-18 16:34:42
 */
public interface CatalogService extends BaseDao<Catalog, java.lang.Long> {
    /**
     * 根据名称查找catalog
     * 
     * @param name
     * @return
     */
    Catalog getCatalogByName(String name);

    /**
     * 判断catalog是否存在
     * 
     * @param name
     *            名称
     * @param id
     *            编号
     * @return
     */
    boolean catalogExists(String name, Long id);

    /**
     * 批量设置catalog排序
     * 
     * @param ids
     *            catalog编号
     * @param orders
     *            排序号码
     */
    void setCatalogOrders(Long[] ids, Long[] orders);

    /**
     * 设置catalog父类别
     * 
     * @param catalogId
     *            catalog编号
     * @param parentId
     *            父类编号
     */
    void setCatalogParent(Long catalogId, Long parentId);

    /**
     * 查找catalog的子分类
     * 
     * @param parent
     * @return
     */
    List<Catalog> findChildCatalogs(Long parent);

    /**
     * 查找catalog的所有子分类
     * 
     * @param parent
     * @return
     */
    List<Catalog> findAllChildCatalogs(Long parent);
}